//导入fs模块
const fs = require('fs');

//导入path模块
const path = require('path');

//定义正则表达式，分别匹配style和script标签

const regStyle = /<style>([\s\S]*)<\/style>/;
const regScript = /<script>([\s\S]*)<\/script>/;

//调用fs.readFile()方法读取文件
fs.readFile(path.join(__dirname,'../素材/index.html'),'utf8',function(err,dataStr){
  if(err)return console.log('读取文件失败！'+ err.message);
  resolveCSS(dataStr)
  resolveJS(dataStr)
  resolveHTML(dataStr)
})

//定义处理css样式的方法
function resolveCSS(htmlStr){
//使用正则表达式提取需要的内容
const r1 = regStyle.exec(htmlStr);
//将提取出来的样式字符串，进行字符串的replace替换操作
const newCSS = r1[0].replace(/<style>/,'').replace(/<\/style>/,'');
// console.log(newCSS);
fs.writeFile(path.join(__dirname,'./clock/index.css'),newCSS,function(err) {
  if(err) return console.log('写入文件失败！'+ err.message);
  console.log('写入文件成功！');
})
}

//定义处理js脚本的方法
function resolveJS(htmlStr){

  //使用正则表达式提取需要的内容
  const r2 = regScript.exec(htmlStr);

  //将提取出来的脚本字符串，进行字符串的replace替换操作
  const newJS = r2[0].replace(/<script>/,'').replace(/<\/script>/,'');

  //将处理的结果，写入到clock目录中的 index.js 文件里
  fs.writeFile(path.join(__dirname,'./clock/index.js'),newJS,function(err) {
    if(err) return console.log('写入js文件失败！'+ err.message);
    console.log('写入js文件成功！');
  })  
}

//定义处理HTML结构的方法
function resolveHTML(htmlStr){
   //将字符串调用replace方法，把内嵌的style和script标签换成外联的link 和 script 标签
   const newHTML = htmlStr.replace(regStyle,'<link rel="stylesheet" href="./index.css">').replace
   (regScript,'<script src="./index.js"></script>');

   //写入index.html文件
   fs.writeFile(path.join(__dirname,'./clock/index.html'),newHTML,function(err) {
     if(err) return console.log('写入index.html文件失败！'+ err.message);
     console.log('写入index.html文件成功！');
   })
}